In recent years, application programming interfaces (APIs) have begun to play an increasingly important role in defining how remotely hosted services accept and generate information. APIs include protocols offered by remotely hosted services that provide access to third parties to resources associated with the remotely hosted services. APIs are frequently used to manage communication between one or more parties on data networks such as the Internet. For example, APIs mediate communications between merchants and payment providers (e.g., protocols for transmitting payment information to PAYPAL, GOOGLE CHECKOUT, etc.), communications between users and merchants (e.g., protocols for retrieving tracking numbers from FedEx), and communications between users and content repositories (e.g., protocols for retrieving photos from photo sharing websites such as FLICKR, PICASAWEB, PHOTOBUCKET, etc.) among others. APIs are used to access remotely hosted services because they provide direct access to content and other information that is stored and/or collected by the remotely hosted services.
However, the recent proliferation of APIs has created a number of problems for third parties who would like to take advantage of the access to resources that are provided by the APIs. In particular, communication with each API is governed by a set of API-specific requirements. Thus, even when remotely hosted services provide similar functions (e.g., providing access to stored photos over the Internet), the APIs for similar remotely hosted services may have vastly different requirements (e.g., requiring differently formatted requests, different communication protocols, different security credentials, and having different usage limits). Additionally the requirements of a single API may be updated by the remotely hosted service at any time. Thus, as the number of APIs increases the cost of monitoring requirements and changes to requirements for a growing number of APIs is increasingly burdensome.